package com.example.apartment.service;

import com.example.apartment.domain.Admin;

import java.util.List;

/**
 * UserService 用户业务层接口
 *
 * @author wuzexin
 * @date 2021/10/27 17:03
 */
public interface AdminService {

    /**
     * 管理员注册功能
     *
     * @param username  用户名
     * @param password  密码
     * @param cellphone 手机号码
     */
    void register(String username, String password, String cellphone);

    /**
     * 管理员登录功能
     *
     * @param username 用户名
     * @param password 密码
     * @return 管理员用户信息
     */
    Admin adminLogin(String username, String password);

    /**
     * 查询所有宿舍管理员信息
     *
     * @param admin 管理员用户信息
     * @return 管理员列表
     */
    List<Admin> select(Admin admin);

    /**
     * 根据ID查询管理员信息
     *
     * @param admin 管理员用户信息
     * @param id    管理员id
     * @return
     */
    Admin seletctById(Admin admin, Integer id);

    /**
     * 修改管理员信息
     *
     * @param admin        管理员用户信息
     * @param id           管理员主键id
     * @param username     用户名
     * @param role         角色
     * @param cellphone    手机号码
     * @param password     密码
     * @param buildingName 宿舍楼名字
     * @return 修改的管理员信息
     */
    Admin update(Admin admin, Integer id, String username, Integer role, String cellphone, String password, String buildingName);

    /**
     * 查询所有无权限的管理员
     *
     * @param admin 系统管理员用户信息
     * @return 管理员列表
     */
    List<Admin> selectNoPermissions(Admin admin);

    /**
     * 根据id删除管理员信息
     *
     * @param admin 系统管理员用户信息
     * @param id    被删除的管理员id
     */
    void delete(Admin admin, Integer id);
}
